//
//  LevelData.cpp
//  BoxupPuzzle
//
//  Created by Nguyen Van Tien on 8/24/13.
//
//

#include "LevelData.h"

LevelData* LevelData::CreateInstance()
{
    LevelData* pLevel = new LevelData();
    
    if (pLevel)
    {
        pLevel->autorelease();
    }
    else
    {
        CC_SAFE_DELETE(pLevel);
    }
    
    return pLevel;
}

void LevelData::Deserialize(FILE *file)
{
    fread(&m_iLevelIndex, sizeof(int), 1, file);
    fread(&m_iColumn, sizeof(int), 1, file);
    fread(&m_iRow, sizeof(int), 1, file);
    
    //matrix
    for (int i = 0; i < m_iRow; i++) {
        for (int j = 0; j < m_iColumn; j++) {
            fread(&m_LevelMatrix[i][j], sizeof(int), 1, file);
        }
    }
}

int LevelData::GetLevelMatrixValue(int iRow, int iColumn)
{
    if (iRow < 0 || iRow >= m_iRow || iColumn < 0 || iColumn >= m_iColumn)
        return -1;
    return m_LevelMatrix[iRow][iColumn];
}